Relational Query Co-Processing on Graphics Processors1
نویسندگان
چکیده
Graphics processors (GPUs) have recently emerged as a powerful co-processor for general-purpose computation. Compared with commodity CPUs, GPUs have an order of magnitude higher computation power as well as memory bandwidth. Moreover, new-generation GPUs allow writes to random memory locations, provide efficient inter-processor communication through on-chip local memory, and support a general-purpose parallel programming model. Nevertheless, many of the GPU features are specialized for graphics processing, including the massively multi-threaded architecture, the Single-Instruction-Multiple-Data processing style, and the execution model of a single application at a time. Additionally, GPUs rely on a bus of limited bandwidth to transfer data from and to the CPU, do not allow dynamic memory allocation from GPU kernels, and have little hardware support for write conflicts. Therefore, it requires a careful design and implementation to utilize the GPU for co-processing database queries. In this paper, we present our design, implementation, and evaluation of an in-memory relational query co-processing system, GDB, on the GPU. Taking advantage of the GPU hardware features, we design a set of highly optimized data-parallel primitives such as split and sort, and use these primitives to implement common relational query processing algorithms. Our algorithms utilize the high parallelism as well as the high memory bandwidth of the GPU, and use parallel computation and memory optimizations to effectively reduce memory stalls. Furthermore, we propose co-processing techniques that take into account both the computation resources and the GPU-CPU data transfer cost so that each operator in a query can utilize suitable processors the CPU, the GPU, or both, for an optimized overall performance. We have evaluated our GDB system on a machine with an Intel quad-core CPU and an NVIDIA GeForce 8800 GTX GPU. Our workloads include microbenchmark queries on memory-resident data as well as TPC-H queries that involve complex data types and multiple query operators on data sets larger than the GPU memory. Our results show that our GPU-based algorithms are 2-27x faster than their optimized CPU-based counterparts on in-memory data. Moreover, the performance of our co-processing scheme is similar to or better than both the GPU-only and the CPU-only schemes.
منابع مشابه
A First Step Towards GPU-assisted Query Optimization
Modern graphics cards bundle high-bandwidth memory with a massively parallel processor, making them an interesting platform for running data-intensive operations. Consequently, several authors have discussed accelerating database operators using graphics cards, often demonstrating promising speed-ups. However, due to limitations stemming from limited device memory and expensive data transfer, G...
متن کاملChallenges for a GPU-Accelerated Dynamic Programming Approach for Join-Order Optimization
Relational database management systems apply query optimization in order to determine efficient execution plans for declarative queries. Since the execution time of equivalent query execution plans can differ by several orders of magnitude based on the used join order, join-order optimization is one of the most important problems within query processing. Since the time-budget of query optimizat...
متن کاملGPU-accelerated join-order optimization
Join-order optimization is an important task during query processing in DBMSs. The execution time of different join orders can vary by several orders of magnitude. Hence, efficient join orders are essential to ensure the efficiency of query processing. Established techniques for join-order optimization pose a challenge for current hardware architectures, because they are mainly sequential algor...
متن کاملWaste not... Efficient co-processing of relational data
The variety of memory devices in modern computer systems holds opportunities as well as challenges for data management systems. In particular, the exploitation of Graphics Processing Units (GPUs) and their fast memory has been studied quite intensively. However, current approaches treat GPUs as systems in their own right and fail to provide a generic strategy for efficient CPU/GPU cooperation. ...
متن کاملRelational Databases Query Optimization using Hybrid Evolutionary Algorithm
Optimizing the database queries is one of hard research problems. Exhaustive search techniques like dynamic programming is suitable for queries with a few relations, but by increasing the number of relations in query, much use of memory and processing is needed, and the use of these methods is not suitable, so we have to use random and evolutionary methods. The use of evolutionary methods, beca...
متن کامل